#this file defines all of the different types of terrain that can be generated

class TFTerrainType(object):        
    def __init__(self, icon = "~", resourceUnits = 0):
        self.icon = icon
        self.resourceUnits = resourceUnits
        
    def __str__(self):
        return self.icon
    
    def resourceYield(self):
        return self.resourceUnits;
    
# begin TFTerrainType children

class TFForest(TFTerrainType):
    def __init__(self, woodUnits):
        super(TFForest, self).__init__("F", woodUnits)
    
class TFJungle(TFTerrainType):
    def __init__(self, woodUnits):
        super(TFJungle, self).__init__("J", woodUnits)
    
class TFMountain(TFTerrainType):
    def __init__(self, stoneUnits):
        super(TFMountain, self).__init__("M", stoneUnits)
    
class TFDesert(TFTerrainType):
    def __init__(self):
        super(TFDesert, self).__init__("D")
    
class TFFreshwater(TFTerrainType):
    def __init__(self, waterUnits):
        super(TFFreshwater, self).__init__("W", waterUnits)
        
class TFSaltwater(TFTerrainType):
    def __init__(self):
        super(TFSaltwater, self).__init__("S")

class TFGrassland(TFTerrainType):
    def __init__(self, grainUnits):
        super(TFGrassland, self).__init__("G", grainUnits)
    
class TFTundra(TFTerrainType):
    def __init__(self):
        super(TFTundra, self).__init__("T")
        
class TFAtmosphere(TFTerrainType):
    def __init__(self):
        super(TFAtmosphere, self).__init__("A")
        
class TFMarsh(TFTerrainType):
    def __init__(self):
        super(TFMarsh, self).__init__("B")
    